From 15f5226ed6a9d61fbb1de592fc0d4ef2a600c171 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 26 Oct 2005 04:23:46 +0000 Subject: [PATCH] Fix some issues with background drawing in RTL. (#318781, Eric Cazeaux) 2005-10-25 Matthias Clasen * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action): Fix some issues with background drawing in RTL. (#318781, Eric Cazeaux) --- ChangeLog | 4 ++++ ChangeLog.pre-2-10 | 4 ++++ gtk/gtktreeviewcolumn.c | 22 +++++++++++++++++++--- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index cb6538c177..a2ce65a7fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2005-10-25 Matthias Clasen + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action): + Fix some issues with background drawing in RTL. (#318781, + Eric Cazeaux) + * tests/Makefile.am: * tests/testentrycompletion.c: Apply a patch by Christian Persch to add property editors. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index cb6538c177..a2ce65a7fd 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,9 @@ 2005-10-25 Matthias Clasen + * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_process_action): + Fix some issues with background drawing in RTL. (#318781, + Eric Cazeaux) + * tests/Makefile.am: * tests/testentrycompletion.c: Apply a patch by Christian Persch to add property editors. diff --git a/gtk/gtktreeviewcolumn.c b/gtk/gtktreeviewcolumn.c index c1867a7abb..31d57b278e 100644 --- a/gtk/gtktreeviewcolumn.c +++ b/gtk/gtktreeviewcolumn.c @@ -2706,7 +2706,11 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column, real_cell_area = *cell_area; real_background_area = *background_area; - depth = real_cell_area.x - real_background_area.x - horizontal_separator/2; + + if (rtl) + depth = real_background_area.width - real_cell_area.width - horizontal_separator/2; + else + depth = real_cell_area.x - real_background_area.x - horizontal_separator/2; real_cell_area.x += focus_line_width; real_cell_area.y += focus_line_width; @@ -2761,7 +2765,16 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column, real_cell_area.width = info->real_width; real_cell_area.width -= 2 * focus_line_width; - real_background_area.width = info->real_width + horizontal_separator + depth; + + if (list->next) + { + real_background_area.width = info->real_width + horizontal_separator + depth ; + } + else + { + /* fill the rest of background for the last cell */ + real_background_area.width = background_area->x + background_area->width - real_background_area.x; + } rtl_cell_area = real_cell_area; rtl_background_area = real_background_area; @@ -2893,7 +2906,10 @@ gtk_tree_view_column_cell_process_action (GtkTreeViewColumn *tree_column, flags &= ~GTK_CELL_RENDERER_FOCUSED; real_cell_area.x += (real_cell_area.width + tree_column->spacing); - real_background_area.x += (real_background_area.width + tree_column->spacing); + real_background_area.x += (real_background_area.width + tree_column->spacing - (2 * focus_line_width )); + + /* Only needed for first cell */ + depth=0; } /* iterate list for PACK_END cells */ -- 2.30.2